跳到主要内容

JZ28 数组中出现次数超过一半的数字

https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163

import java.util.HashMap;

public class Solution {
public int MoreThanHalfNum_Solution(int[] array) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < array.length; i++) {
// 先检查是否存在
if (map.containsKey(array[i])) {
// 再检查当前元素是否超过一半
int count = map.get(array[i]);
map.put(array[i], ++count);

if (count > (array.length / 2)) {
return array[i];
}
} else {
map.put(array[i], 1);
}
}

return array[0];
}
}